package cn.gyn.gynrpc.core.api;

import java.util.List;

/**
 * 负载均衡器：从机房里选择特定的服务器
 * <T>以泛型代替原来的String
 */
public interface LoadBalancer<T> {
    //以spring cloud的负载均衡器为参照，这里创建一个选择方法
    T choose(List<T> providers);

    //默认实现：lambda表达式里的 p 就是choose里的List<String> providers
    LoadBalancer Default = p -> (p == null || p.size() == 0) ? null : p.get(0);
}

